package utils

import (
	"bytes"
	"encoding/json"
	"io"
	"log"
	"net/http"

	"github.com/zeromicro/go-zero/core/logx"
)

// 基本get请求
func BasicGet(url string, param map[string]string) string {

	// 创建一个新的请求
	req, err := http.NewRequest("GET", url, nil)
	if err != nil {
		logx.Error(err.Error())
	}

	if len(param) > 0 {
		q := req.URL.Query()
		for k, v := range param {
			q.Add(k, v)
		}
		req.URL.RawQuery = q.Encode()
	}

	logx.Info("get url:", req.URL.String())

	// 设置请求头部
	// req.Header.Set("X-Requested-With", "XMLHttpRequest")

	// 创建一个新的http.Client并发送请求
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		log.Println(err.Error())
	}
	defer resp.Body.Close()
	b, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Println(err.Error())
	}
	// fmt.Println(string(b))
	return string(b)
}

func BasicPost(url string, data interface{}) string {

	jsonData, err := json.Marshal(data)
	if err != nil {
		logx.Error(err.Error())
	}
	logx.Debug("post data is ", string(jsonData))
	// 创建一个新的请求
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	if err != nil {
		log.Fatal(err)
	}

	// 设置请求头部
	req.Header.Set("Content-Type", "application/json")

	// 创建一个新的http.Client并发送请求
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		log.Println(err.Error())
	}
	defer resp.Body.Close()
	b, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Println(err.Error())
	}
	// fmt.Println(string(b))
	return string(b)
}
